Interface to navigate and search a concept hierarchy

ABSTRACT

A method includes receiving a concept hierarchy at a computing device. The concept hierarchy identifies concepts associated with a document corpus. An interface based on the concept hierarchy is generated. The interface is operable to navigate and search the concept hierarchy.

CLAIM OF PRIORITY

The present application claims priority from and is a continuationapplication of U.S. patent application Ser. No. 12/881,192 filed on Sep.14, 2010 and entitled “INTERFACE TO NAVIGATE AND SEARCH A CONCEPTHIERARCHY,” the contents of which are expressly incorporated herein byreference in their entirety.

BACKGROUND

A document-centric information model is often used in businessenterprises. In the document-centric information model, information isstored in documents. Millions of documents, each typically many pages inlength, may be stored in a document repository that is accessible byemployees of the business enterprise. The search experience for use inthe document-centric information model involves a user that provides asearch query, browses documents returned by a search engine, and refinesthe search query in the hopes of receiving more pertinent search resultsfrom the search engine. Due to the length and volume of availabledocuments, searching for pertinent information and navigating to aparticular point of interest within the document repository may bedifficult and time-consuming.

SUMMARY

Systems, methods, and computer-readable media including an interface tonavigate and search a concept hierarchy are disclosed. Despite thepopularity of the document-centric information model, users mayintuitively process information in terms of concepts and therelationship between concepts. Thus, an interface that enablesconceptual navigation and search of a document corpus may provide a moreintuitive, enjoyable, and efficient experience than document-centricuser interfaces. Given a concept hierarchy that includes concepts minedfrom a document corpus, a user interface may be generated for theconcept hierarchy. The interface may enable navigation, search, andmodification of the concept hierarchy, including the capability tonavigate and modify the concept hierarchy before searching the concepthierarchy. When a search is conducted, the interface may providedocument search results as well as conceptual search results (e.g., alisting of concepts that are semantically related to a search query). Atany point, a concept displayed at the interface may be selected for auser to view underlying documents or portions of documents in thedocument corpus that are semantically related to the selected concept.In particular scenarios, the concept hierarchy may be a self-organizingconcept hierarchy. For example, the concept hierarchy may determinewhether to reorganize itself each time a new document is added to thedocument corpus.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram to illustrate a particular embodiment of a system togenerate an interface to navigate and search a concept hierarchy derivedfrom a document corpus;

FIG. 2 is a diagram to illustrate a particular embodiment of thedocument corpus of FIG. 1;

FIG. 3 is a diagram to illustrate a particular embodiment of theinterface of FIG. 1;

FIG. 4 is a diagram to illustrate another particular embodiment of theinterface of FIG. 1;

FIG. 5 is a flow diagram to illustrate a particular embodiment of amethod of generating an interface to navigate and search a concepthierarchy;

FIG. 6 is a flow diagram to illustrate another particular embodiment ofa method of generating an interface to navigate and search a concepthierarchy;

FIG. 7 is a screenshot of a particular embodiment of a file managerapplication that includes an interface to navigate and search a concepthierarchy;

FIG. 8 is a screenshot of another particular embodiment of the filemanager application of FIG. 7; and

FIG. 9 is a block diagram of a computing environment including acomputing device operable to support embodiments of computer-implementedmethods, computer program products, and system components as illustratedin FIGS. 1-8.

DETAILED DESCRIPTION

A computing device may receive a concept hierarchy that is generated byconcept mining documents of a document corpus. The computing device maygenerate an interface representing the concept hierarchy and maytransmit the interface for display to a display device. The interfacemay enable users to navigate, search, and modify the concept hierarchy.The interface may also enable selection of concepts to view underlyingdocuments of the document corpus that are related to the selectedconcepts. The concept hierarchy can be a self-organizing concepthierarchy that automatically updates itself in response to the additionof a new document into the document corpus or the modification of anexisting document of the document corpus.

In a particular embodiment, a system includes a processor, a concepthierarchy module executable by the processor, and an interface moduleexecutable by the processor. The concept hierarchy module is executableto determine a concept hierarchy corresponding to a document corpus andto update the concept hierarchy response to detecting that a newdocument is added to the document corpus or that an existing document inthe document corpus is modified. The interface module is executable togenerate an interface based on the concept hierarchy and to transmit theinterface for display to a display device. The interface module is alsoexecutable to receive user input at the interface. The interface moduleis further executable to update the interface to reflect result ofperforming a navigation, search, or modification operation on theconcept hierarchy based on the user input.

In another particular embodiment, a method includes receiving a concepthierarchy at a computing device, where the concept hierarchy identifiesconcepts associated with a document corpus. The method also includesgenerating an interface based on the concept hierarchy, where theinterface is operable to navigate and search the concept hierarchy. Themethod further includes receiving a search query via the interface. Themethod includes identifying document search results by searching thedocument corpus based on the search query and identifying conceptualsearch results by searching the concept hierarchy for one or moreconcepts that are semantically related to the search query. The methodalso includes displaying the document search results and the conceptualsearch results at the interface. The document search results areselectable via the interface to view one or more documents of thedocument corpus that are associated with the document search results.The conceptual search results are selectable via the interface to viewone or more documents of the document corpus that are associated with aselected concept identified by the conceptual search results.

In another particular embodiment, a computer-readable storage mediumincludes instructions that, when executed by a computer, cause thecomputer to receive a concept hierarchy at a computing device. Theconcept hierarchy identifies concepts associated with a document corpus.The instructions also cause the computer to generate an interface basedon the concept hierarchy. The interface is operable to navigate, search,and modify the concept hierarchy. The instructions further cause thecomputer to transmit the interface for display to a display device. Theinstructions may be implemented as a computer software application thatis stored in the computer-readable storage medium.

FIG. 1 is a diagram to illustrate a particular embodiment of a system100 to generate an interface 152 to navigate and search a concepthierarchy 130. The system 100 includes a concept hierarchy module 110, adocument corpus 120, and an interface module 140.

The concept hierarchy module 110 may include concept mining logic 112and self-organization logic 114. The concept mining logic 112 may beconfigured to determine a concept hierarchy (e.g., the concept hierarchy130) corresponding to the document corpus 120. For example, the conceptmining logic 112 may process documents (e.g., illustrative documents122) of the document corpus 120 to generate the concept hierarchy 130.It should be noted that although the documents 122 of the documentcorpus 120 are illustrated in FIG. 1 as part of the system 100, one ormore documents of the document corpus 120 may also be located at othercomputing devices or systems that are accessible via a network. Thus,the document corpus 120 may include local documents, remote documents,or any combination thereof. Each concept of the concept hierarchy 130may include one or more terms that are included in at least one of thedocuments 122 in the document corpus 120. The concept hierarchy 130 maybe stored at a random access memory (RAM) or disk-based memory at thesystem 100.

In a particular embodiment, the concept hierarchy 130 may be aself-organizing concept hierarchy. For example, the self-organizationlogic 114 may be used to implement self-organization features withrespect to the concept hierarchy 130. In a particular embodiment, theself-organization logic 114 is capable of detecting that a document hasbeen added to the document corpus 120, determining whether an existingdocument of the document corpus 120 has been modified, and determiningwhether or not the concept hierarchy 130 is updated in response to theaddition or modification. The self-organization logic 114 may alsoautomatically update the concept hierarchy 130 as needed.

For example, when a new document is added to the document corpus 120,automatically updating the concept hierarchy 130 may include addingconcepts to the concept hierarchy 130, removing concepts from theconcept hierarchy 130, reorganizing the concept hierarchy 130, or anycombination thereof. Concepts that are added to the concept hierarchy130 may include new concepts from the new document or concepts thathave, in light of the new document, become prevalent enough in thedocument corpus to warrant inclusion into the concept hierarchy 130.Concepts that are removed from the concept hierarchy 130 may includeconcepts that have, in light of the new document, become rare enough inthe document corpus to warrant removal from the concept hierarchy 130.In a particular embodiment, the concept hierarchy 130 is represented asa graph that includes a plurality of nodes connected by a plurality oflinks, where each node corresponds to a concept and each link between apair of nodes represents a weighted semantic relationship betweenconcepts corresponding to the pair of nodes.

Reorganizing the concept hierarchy 130 may include establishing newlinks, removing existing links, updating weights for existing links, orany combination thereof. Concept hierarchies are further described andillustrated with reference to FIGS. 3-4. It will be appreciated thatalthough the concepts corresponding to nodes connected by a link may berelated semantically, the concepts may not be related lexically (e.g.,may not be the same or synonymous terms). Thus, the concept hierarchy130 may enable discovery of semantic relationships that may not be foundvia lexical searches in a document-centric information model.

The interface module 140 may receive the concept hierarchy 130 and maygenerate the interface 152 based on the concept hierarchy 130. Theinterface module 140 may also transmit the interface 152 for display toa display device 150. In a particular embodiment, the interface 152 isintegrated into a file manager application (e.g., to conceptuallynavigate and search data at a single computing device), a collaborationportal (e.g., to conceptually navigate and search data shared betweenmultiple computing devices), or a database application (e.g., toconceptually navigate and search a database) that is executed at thesystem 100. The interface module 140 may include navigation logic 142,search logic 144, and modification logic 146. In a particularembodiment, the interface module 140 is configured to receive input(e.g., user input from an illustrative user 160) at the interface 152.

The navigation logic 142 may perform a navigation operation on theconcept hierarchy 130 and may update the interface 152 to reflect theresults of the navigation operation. Depending on the user inputreceived from the user 160, the navigation operation may include zoomingin on a portion of the concept hierarchy 130, zooming out from a portionof the concept hierarchy 130, panning (e.g., left, right, up, or down)on the concept hierarchy 130, or any combination thereof. The navigationoperation may also include traversing a link between two nodes of theconcept hierarchy 130, “expanding” a particular node of the concepthierarchy 130 to display previously hidden nodes linked to theparticular node, “collapsing” a particular node of the concept hierarchyto hide previously displayed nodes linked to the particular node, or anycombination thereof.

The search logic 144 may perform a search operation on the concepthierarchy 130 and may update the interface 152 to reflect the results ofthe search operation. For example, the user 160 may input a search queryand the search logic 144 may perform a search of the concept hierarchy130 to identify one or more concepts in the concept hierarchy 130 thatare semantically relevant to the search query. The search logic 144 mayupdate the interface 152 to display the identified concepts. In aparticular embodiment, the search logic 144 also searches the documents122 of the document corpus 120 based on the search query. For example,the search logic 144 may identify particular documents or portions ofdocuments that are lexically related to the search query. The searchlogic 144 may update the interface 152 to display document searchresults that are lexically related to the search query in addition tothe conceptual search results that are semantically related to thesearch query.

The modification logic 146 may modify the concept hierarchy 130 based oninput received at the interface 152. For example, modifying the concepthierarchy 130 may include reorganizing the concept hierarchy 130,renaming particular concepts of the concept hierarchy 130, or anycombination thereof.

In operation, the concept hierarchy module 110 may mine the documentcorpus 120 to generate the concept hierarchy 130. The concept hierarchy130 may include concepts that are determined to be relatively prevalentin the documents 122 of the document corpus 120. Each concept of theconcept hierarchy 130 may include one or more terms that are included inat least one of the documents 122 in the document corpus 120. In aparticular embodiment, determining the relative prevalence of conceptsincludes applying an entropy-based concept mining algorithm to thedocument corpus 120. When new documents are added to the document corpus120, the concept hierarchy module 110 may automatically update theconcept hierarchy 130. The interface module 140 may generate theinterface 152 based on the concept hierarchy 130 and may transmit theinterface 152 for display to the display device 150. The interfacemodule 140 may receive input (e.g., from the user 160) at the interface152 and may perform one or more operations on the concept hierarchy 130based on the received input. For example, the interface module 140 maynavigate, search, or modify the concept hierarchy 130 based on thereceived input. The interface module 140 may also update the interface152 to reflect the results of performing the navigation, search, ormodification.

In a particular example of operation, the user 160 may navigate andmodify the concept hierarchy 130 via the interface 152 prior tosearching the concept hierarchy 130 via the interface 152. For example,the user 160 may initially view a list of concepts related to theconcept “A” and documents of the document corpus 120 associated with theconcept “A.” The user 160 may then navigate from the concept “A” to theconcept “B” (e.g., by using an input device at the system 100, such as amouse, to select the concept “B” at the interface 152). The user 160 maysubsequently view a list of concepts related to the concept “B” anddocuments of the document corpus 120 associated with the concept “B.”The user 160 may also modify the concept hierarchy 130 via the interface152 (e.g., by renaming “B” to “E”). The interface 152 may be updated toreflect the modification (e.g., by displaying “E” instead of “B”). Themodified concept hierarchy may be further navigated, further modified,or searched by the user 160 via the interface 152.

It will be appreciated that the system 100 of FIG. 1 may enableconcept-centric (as opposed to document-centric) navigation and searchof information in a document corpus. It will also be appreciated thatthe system 100 of FIG. 1 may provide both document-centric searchresults as well as concept-centric search results, thereby increasing alikelihood of returning pertinent search results for a search query. Thesystem 100 of FIG. 1 may thus enable intuitive and efficient navigationand search of a document corpus.

FIG. 2 is a diagram to illustrate a particular embodiment of a documentcorpus 200. In an illustrative embodiment, the document corpus 200 isthe document corpus 120 of FIG. 1.

The document corpus may include computer files 202. For example, thecomputer files 202 may include documents, spreadsheets, presentations,and other files including text that may be processed by concept mininglogic (e.g., the concept mining logic 112 of FIG. 1). The documentcorpus 200 may also include web pages 204. For example, the web pages204 may be associated with one or more websites managed by an enterprisethat owns the document corpus 200.

The document corpus may further include e-mails 206 and othercommunication. For example, the e-mails may include an archive of e-mailmessages sent and received by employees at a business enterprise. In aparticular embodiment, the document corpus includes database elements208, such as database tables and scripts.

It should be noted that documents may be added and removed from thedocument corpus automatically or manually. For example, monitors at abusiness enterprise may automatically add newly created documents to thedocument corpus 200 and may automatically remove deleted documents fromthe document corpus 200. Alternately, users at the business enterprisemay manually add and remove documents from the document corpus 200 tocontrol the quantity and content of documents made available to conceptmining logic (e.g., the concept mining logic 110 of FIG. 1). Themodification of documents at the document corpus 200 may similarly bemonitored.

FIG. 3 illustrates a particular embodiment of an interface 300 thatrepresents a concept hierarchy. In an illustrative embodiment, theinterface 300 is the interface 152 of FIG. 1.

In the particular embodiment illustrated in FIG. 3, the concepthierarchy is represented as a graph including a plurality of nodes(e.g., illustrative nodes 310, 320, 330, 340, and 350) connected by aplurality of links (e.g., illustrative links 312, 313, 314, and 315).Each node may represent a particular concept and each link between twonodes may represent a semantic relationship between the two conceptscorresponding to the two nodes. In a particular embodiment, theinterface 300 may “focus” on one or more nodes. For example, in theparticular embodiment illustrated in FIG. 3, the node 310 (andcorresponding concept “SQL SERVER”) may be the “focus” of the interface300, since outgoing links may be displayed for the node 310 but not forthe nodes 320, 330, 340, and 350. In a particular embodiment, theinterface 300 identifies underlying documents 390 of a document corpusthat were mined to generate the interface 300.

In a particular embodiment, the links of the concept hierarchy alsoindicate a relative weight of the semantic relationship between the twoconcepts. For example the concepts “SQL SERVER” (at node 310) and“QUERY” (at node 320) may have a semantic relationship weight of 0.20,as indicated by the link 312. The concepts “SQL SERVER” (at node 310)and “DEPLOY” (at node 330) may have a semantic relationship weight of0.19, as indicated by the link 313. The concepts “SQL SERVER” (at node310) and “XML” (at node 340) may have a semantic relationship weight of0.23, as indicated by the link 314. The concepts “SQL SERVER” (at node310) and “SQL” (at node 350) may have a semantic relationship weight of0.65, as indicated by the link 315. In a particular embodiment, thegreater the weight the more semantically related the concepts. It willbe appreciated that by displaying weights that indicate degrees ofrelation between concepts, the interface 300 may provide an informativerepresentation of a document corpus that is navigable and searchable.For example, the interface 300 may provide a more informative searchexperience than search engines that are “flat” in organization anddisplay search results without displaying metrics or a notion ofdistance.

In a particular embodiment, the interface 300 may display weights thatare adapted based on user feedback, subsequent processing of documentsin the document corpus, or any combination thereof. For example, a usermay provide feedback indicating that a particular link at the interface300 is over-weighted or under-weighted. The underlying system (e.g., thesystem 100 of FIG. 1) may adapt the weight of the particular link inreal-time or near real-time in response to such feedback, and theinterface 300 may display the adapted weight. As another example, thesystem may dynamically update weights as documents are added, removed,and updated at the document corpus. It will be appreciated that theinterface 300 may thus enhance the information search and browsingexperience by providing a collaborative filtering capability and anadaptive metric space, thereby transforming the search and browsingexperience from a “passive” research activity to an “active” decisionmaking tool.

The interface 300 may also indicate a relative prevalence of displayedconcepts. In a particular embodiment, a size of each node may indicate arelative prevalence of a concept corresponding to the node, where moreprevalent concepts are displayed as larger nodes than nodes thatrepresent less prevalent concepts. For example, the concept “SQL SERVER”(displayed at the node 310) may be more prevalent than the concepts“QUERY,” “DEPLOY,” and “SQL” (displayed at the nodes 330, 340, and 350).The concept “XML” (displayed at the node 340), may be less prevalentthan the concepts “QUERY,” “DEPLOY,” and “SQL” (displayed at the nodes330, 340, and 350). Alternately, or in addition, the size of each nodemay indicate a number of hierarchy levels under the conceptcorresponding to the node. For example, the concept “SQL server”(displayed at the node 310) may have a greater number of hierarchylevels under it than the concept “XML” (displayed at the node 340).

FIG. 4 is a diagram to illustrate a particular embodiment of updatingthe interface 300 of FIG. 3 based on a navigation operation. Forexample, a user may have navigated from the node 310 to the node 320(e.g., by selecting the concept “QUERY” at the node 320), thereby makingthe node 320 the new focus of the interface 300.

As illustrated in FIG. 4, the node 320 may have outgoing links 425, 426,427, and 428, indicating semantic relationship weights between theconcept “QUERY” and the concepts “SQL,” “INDEX,” “PROPERTIES,” and“FILTER” (represented by nodes 350, 460, 470, and 480). It will beappreciated that updating the interface 300 based on the navigationoperation may also display more or fewer nodes and links than before thenavigation operation. Moreover, nodes at the interface may include moreor fewer links than before the navigation operation. For example,because the concept “SQL” is semantically related to both the concept“SQL SERVER” as well as the concept “QUERY,” the interface 300 keeps theoriginal link 315 between the node 350 and the node 310 and alsodisplays the link 425 between the node 320 and the node 350.

FIG. 5 is a flow diagram to illustrate a particular embodiment of amethod 500 of generating an interface to navigate and search a concepthierarchy. In an illustrative embodiment, the method 500 may beperformed by the system 100 of FIG. 1.

The method 500 includes receiving a concept hierarchy at a computingdevice, at 502. The concept hierarchy identifies concepts associatedwith a document corpus. For example, in FIG. 1, the interface module 140may receive the concept hierarchy 130, where the concept hierarchy 130identifies concepts associated with the documents 122 of the documentcorpus 120.

The method 500 also includes generating an interface based on theconcept hierarchy, at 504. The interface is operable to navigate,search, and modify the concept hierarchy. For example, in FIG. 1, theinterface module 140 may generate the interface 152. The method 500further includes transmitting the interface for display to a displaydevice, at 506. For example, in FIG. 1, the interface 152 may betransmitted for display to the display device 150.

The method 500 may include receiving a selection of a particular conceptof the concept hierarchy, at 508, displaying portions of one or moredocuments of the document corpus that are associated with the particularconcept, at 510, and identifying one or more other concepts that aresemantically related to the particular concept, at 512. For example, inFIG. 1, the user 160 may select a concept of the concept hierarchy 130via the interface 152, and the interface module 140 may displayassociated documents and semantically related concepts for the selectedconcept. In an illustrative embodiment, documents and semanticallyrelated concepts are displayed by an interface as described andillustrated with reference to FIGS. 7-8.

Alternately, the method 500 may include receiving input at theinterface, at 514, and modifying the concept hierarchy based on theinput, at 516. Modifying the concept hierarchy may include reorganizingthe concept hierarchy, renaming one or more concepts of the concepthierarchy, or any combination thereof. For example, in FIG. 1, the user160 may provide input that causes the interface module 140 to reorganizeand/or rename portions of the concept hierarchy 140.

FIG. 6 is a flow diagram to illustrate another particular embodiment ofa method 600 of generating an interface to navigate and search a concepthierarchy. In an illustrative embodiment, the method 600 may beperformed by the system 100 of FIG. 1.

The method 600 includes receiving a concept hierarchy at a computingdevice, at 602. The concept hierarchy identifies concepts associatedwith a document corpus. For example, in FIG. 1, the interface module 140may receive the concept hierarchy 130, where the concept hierarchy 130identifies concepts associated with the documents 122 of the documentcorpus 120.

The method 600 also includes generating an interface based on theconcept hierarchy, at 604. The interface is operable to navigate theconcept hierarchy prior to receiving a search query. For example, inFIG. 1, the interface module 140 may generate the interface 152. Theinterface 152 may be used to navigate and modify the concept hierarchy130 prior to searching the concept hierarchy 130. The method 600 furtherincludes transmitting the interface for display to a display device, at606. For example, in FIG. 1, the interface 152 may be transmitted fordisplay to the display device 150.

The method 600 includes receiving the search query, at 608. For example,in FIG. 1, the user 160 may input the search query at the interface 152.The method also includes identifying document search results at theinterface by searching the document corpus based on the search query, at610. The document search results are selectable to view one or moredocuments of the document corpus that are associated with the documentsearch results. For example, in FIG. 1, the search logic 144 may searchthe documents 122 based on the search query and may update the interface152 to identify document search results.

The method 600 further includes identifying conceptual search results atthe interface by searching the concept hierarchy for one or moreconcepts that are semantically related to the search query, at 612. Theconceptual search results are selectable to navigate the conceptualhierarchy and to view one or more documents of the document corpus thatare associated with the conceptual search results. For example, in FIG.1, the search logic 144 may search the concept hierarchy 130 forconcepts that are semantically related to the search query and mayupdate the interface 152 to identify conceptual search results.

FIG. 7 is a screenshot of a particular embodiment of a file managerapplication that includes an interface 700 to navigate and search aconcept hierarchy. In an illustrative embodiment, the file managerapplication interface 700 includes the interface 152 of FIG. 1.

In the particular embodiment illustrated in FIG. 7, the file managerapplication interface 700 includes three areas: a concept browser 710, afolder viewer 720, and a file viewer 730. The concept browser 710 maydisplay one or more concepts of a concept hierarchy that has beengenerated based on the contents of the folders in the folder viewer 720.For example, as illustrated in FIG. 7, the concept browser 710 mayinclude a concept “source code” 711, indicating the presence of sourcecode files and/or the phrase “source code” within the folders of thefolder viewer 720.

The folder viewer 720 may be operable to receive a selection of a folderand cause the file viewer 730 to display the files contained in theselected folder. For example, as illustrated in FIG. 7, the folderviewer 720 may receive a selection of a folder “My Files” 722 and causethe file viewer 730 to display the files contained in the folder “MyFiles” 722, including the files “computer1.txt,” “computer2.txt,”“computer3.txt,” “music1.txt,” “music2.txt,” “music3.txt,” “sport1.txt,”and “sport2.txt.”

FIG. 8 is a screenshot of another particular embodiment of the filemanager application interface 700 of FIG. 7. For example, the filemanager application interface 700 may update one or more of the conceptbrowser 710, the folder viewer 720, and the file viewer 730 in responseto a navigation of the concept hierarchy underlying the concept browser710.

In the particular embodiment illustrated in FIG. 8, a user of the filemanager application interface 700 has expanded (e.g., in response to auser selection) the concept “source code” 711. Expanding the concept“source code” 711 may include displaying concepts of the concepthierarchy that are semantically related to the concept “source code”711. For example, the newly displayed concepts may include the concepts“source” 812, “software” 813, “code” 814, and “process” 815.

In the particular embodiment illustrated in FIG. 8, a user of the filemanager application interface 700 has also selected a concept “software”813. In response to the selection of the concept “software” 813, thefile manager application interface 700 may identify files associatedwith the concept “software” 813. For example, the file managerapplication 700 may identify that within the folder “My Files” 722, thefiles “computer2.txt” 832 and “computer3.txt” 834 may be associated withthe concept “software 813.” The identified files “computer2.txt” 832 and“computer3.txt” 834 may be selected at the file viewer 730 to viewportions of the files “computer2.txt” 832 and “computer3.txt” 834 thatare related to the concept “software” 813. It should be noted that otherfiles located in folders besides the folder “My Files” 722 may also beassociated with the concept “software” 813, but may not be shown becauseonly the folder “My Files” 722 is selected in the folder viewer 720.

FIG. 9 shows a block diagram of a computing environment 900 including acomputing device 910 operable to support embodiments ofcomputer-implemented methods, computer program products, and systemcomponents according to the present disclosure. For example, thecomputing device 910 or components thereof may include, implement, or beincluded by the concept hierarchy module 110 of FIG. 1, the documentcorpus 120 of FIG. 1, the interface module 140 of FIG. 1, the documentcorpus 200 of FIG. 2, or portions thereof.

The computing device 910 includes at least one processor 920 and asystem memory 930. Depending on the configuration and type of computingdevice, the system memory 930 may be volatile (such as random accessmemory or “RAM”), non-volatile (such as read-only memory or “ROM,” flashmemory, and similar memory devices that maintain stored data even whenpower is not provided), some combination of the two, or some othermemory. The system memory 930 typically includes an operating system932, one or more application platforms 934, one or more applications,and program data 938. For example, the system memory 930 may include aconcept hierarchy module 936 and an interface module 937. In anillustrative embodiment, the concept hierarchy module 936 is the concepthierarchy module 110 of FIG. 1 and the interface module 937 is theinterface module 140 of FIG. 1.

The computing device 910 may also have additional features orfunctionality. For example, the computing device 910 may also includeremovable and/or non-removable additional data storage devices such asmagnetic disks, optical disks, tape, and standard-sized or flash memorycards. Such additional storage is illustrated in FIG. 9 by removablestorage 940 and non-removable storage 950. Computer storage media mayinclude volatile and/or non-volatile storage and removable and/ornon-removable media implemented in any technology for storage ofinformation such as computer-readable instructions, data structures,program components or other data. The system memory 930, the removablestorage 940, and the non-removable storage 950 are all examples ofcomputer storage media. The computer storage media includes, but is notlimited to, RAM, ROM, electrically erasable programmable read-onlymemory (EEPROM), flash memory or other memory technology, compact disks(CD), digital versatile disks (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium that can be used to storeinformation and that can be accessed by the computing device 910. Anysuch computer storage media may be part of the computing device 910.

The computing device 910 may also have input device(s) 960, such as akeyboard, mouse, pen, voice input device, touch input device, etc.connected via one or more input interfaces. Output device(s) 970, suchas a display, speakers, printer, etc. may also be included and connectedvia one or more output interfaces. For example, the output devices 970may include the display device 150 of FIG. 1. The computing device 910also contains one or more communication connections 980 that allow thecomputing device 910 to communicate with other computing devices 990over a wired or a wireless network. For example, the computing device910 may communicate with a document corpus 992. In an illustrativeembodiment, the document corpus 992 is the document corpus 120 of FIG. 1or the document corpus 200 of FIG. 2. The computing device 910 may alsocommunicate with one or more relational databases or portions ofrelational databases, including database elements included in thedocument corpus 992.

It will be appreciated that not all of the components or devicesillustrated in FIG. 9 or otherwise described in the previous paragraphsare necessary to support embodiments as herein described. For example,the removable storage 940 may be optional.

The illustrations of the embodiments described herein are intended toprovide a general understanding of the structure of the variousembodiments. The illustrations are not intended to serve as a completedescription of all of the elements and features of apparatus and systemsthat utilize the structures or methods described herein. Many otherembodiments may be apparent to those of skill in the art upon reviewingthe disclosure. Other embodiments may be utilized and derived from thedisclosure, such that structural and logical substitutions and changesmay be made without departing from the scope of the disclosure.Accordingly, the disclosure and the figures are to be regarded asillustrative rather than restrictive.

Those of skill would further appreciate that the various illustrativelogical blocks, configurations, modules, and process steps orinstructions described in connection with the embodiments disclosedherein may be implemented as electronic hardware or computer software.Various illustrative components, blocks, configurations, modules, orsteps have been described generally in terms of their functionality.Whether such functionality is implemented as hardware or softwaredepends upon the particular application and design constraints imposedon the overall system. Skilled artisans may implement the describedfunctionality in varying ways for each particular application, but suchimplementation decisions should not be interpreted as causing adeparture from the scope of the present disclosure.

The steps of a method described in connection with the embodimentsdisclosed herein may be embodied directly in hardware, in a softwaremodule executed by a processor, or in a combination of the two. Asoftware module may reside in computer readable media, such as randomaccess memory (RAM), flash memory, read only memory (ROM), registers, ahard disk, a removable disk, a CD-ROM, or any other form of storagemedium known in the art. An exemplary storage medium is coupled to aprocessor such that the processor can read information from, and writeinformation to, the storage medium. In the alternative, the storagemedium may be integral to the processor or the processor and the storagemedium may reside as discrete components in a computing device orcomputer system.

Although specific embodiments have been illustrated and describedherein, it should be appreciated that any subsequent arrangementdesigned to achieve the same or similar purpose may be substituted forthe specific embodiments shown. This disclosure is intended to cover anyand all subsequent adaptations or variations of various embodiments.

The Abstract is provided with the understanding that it will not be usedto interpret or limit the scope or meaning of the claims. In addition,in the foregoing Detailed Description, various features may be groupedtogether or described in a single embodiment for the purpose ofstreamlining the disclosure. This disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter may be directed toless than all of the features of any of the disclosed embodiments.

The previous description of the embodiments is provided to enable aperson skilled in the art to make or use the embodiments. Variousmodifications to these embodiments will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other embodiments without departing from the scope of thedisclosure. Thus, the present disclosure is not intended to be limitedto the embodiments shown herein but is to be accorded the widest scopepossible consistent with the principles and novel features as defined bythe following claims.

What is claimed is:
 1. A computer-readable storage device comprisinginstructions that, when executed by a computer, cause the computer to:receive a concept hierarchy, wherein the concept hierarchy identifiesconcepts associated with a document corpus; generate an interface basedon the concept hierarchy, wherein the interface is operable to navigateand search the concept hierarchy; transmit the interface for display toa display device; receive a search query; and in response to the searchquery: search the document corpus using the search query; and search theconcept hierarchy for one or more concepts that are semantically relatedto the search query.
 2. The computer-readable storage device of claim 1,wherein the interface is further operable to: receive a selection of aparticular concept of the concept hierarchy; display portions of one ormore documents of the document corpus that are associated with theparticular concept; and identify one or more other concepts that aresemantically related to the particular concept.
 3. The computer-readablestorage device of claim 1, wherein the concept hierarchy is aself-organizing concept hierarchy, and wherein the concept hierarchy isconfigured to determine whether to reorganize itself each time a newdocument is added to the document corpus.
 4. The computer-readablestorage device of claim 3, wherein reorganizing the concept hierarchyincludes one or more of establishing new links, removing existing links,and updating weights for existing links.
 5. The computer-readablestorage device of claim 1, wherein the concept hierarchy is aself-organizing concept hierarchy that automatically updates itself inresponse to modification of a document of the document corpus.
 6. Thecomputer-readable storage device of claim 1, wherein the concepthierarchy enables discovery of semantic relationships related to thesearch query, and wherein a lexical relationship is used to identifyparticular documents or portions of documents that are lexically relatedto the search query.
 7. The computer-readable storage device of claim 1,wherein adding a document to the document corpus results in removing aconcept from the concept hierarchy.
 8. A system, comprising: aprocessor; a concept hierarchy module executable by the processor todetermine a concept hierarchy corresponding to a document corpus; and aninterface module executable by the processor to: generate an interfacebased on the concept hierarchy; transmit the interface for display to adisplay device; receive user input at the interface; and update theinterface to reflect results of performing a navigation operation on theconcept hierarchy based on the user input or to reflect results ofperforming a search operation on the concept hierarchy based on the userinput.
 9. The system of claim 8, wherein the interface indicates atleast one weight that represents a degree of relation between conceptsof the concept hierarchy, and wherein the interface module is furtherexecutable by the processor to automatically update the at least oneweight based on a change at the document corpus.
 10. The system of claim8, wherein the interface is integrated into a file manager applicationthat is operable to: receive a selection of a particular concept;receive a selection of a particular directory; identify one or moredocuments in the particular directory that are semantically related tothe particular concept; and identify one or more documents that arelexically related to the user input.
 11. The system of claim 8, whereinadding a document to the document corpus results in removing a conceptfrom the concept hierarchy.
 12. The system of claim 8, wherein theinterface includes a concept browser, a folder viewer, and a fileviewer.
 13. A method comprising: receiving a concept hierarchy at acomputing device, wherein the concept hierarchy identifies conceptsassociated with a document corpus; generating an interface using theconcept hierarchy, wherein the interface is operable to navigate andsearch the concept hierarchy; receiving a search query via theinterface; in response to receiving the search query, identifyingdocument search results by searching the document corpus based on thesearch query and identifying conceptual search results by searching theconcept hierarchy for one or more concepts that are semantically relatedto the search query; and concurrently displaying the document searchresults and the conceptual search results at the interface, wherein thedocument search results are selectable via the interface to view one ormore documents of the document corpus that are associated with thedocument search results, and wherein the conceptual search results areselectable via the interface to navigate the concept hierarchy and toview one or more documents of the document corpus that are associatedwith the conceptual search results.
 14. The method of claim 13, furthercomprising automatically determining whether to reorganize the concepthierarchy in response to detecting addition of a new document to thedocument corpus.
 15. The method of claim 13, wherein the interfacerepresents the concept hierarchy as a graph comprising a plurality ofnodes connected by a plurality of links, wherein a particular node ofthe plurality of nodes corresponds to a particular concept, and whereina particular link between a pair of nodes represents a semanticrelationship between concepts corresponding to the pair of nodes. 16.The method of claim 15, wherein the interface concurrently displaysparticular documents or portions of documents that are lexically relatedto the search query.
 17. The method of claim 15, wherein a concept isremoved from the concept hierarchy in response to adding a document tothe document corpus.
 18. The method of claim 15, wherein a size of anode is based on a number of hierarchical levels below the conceptcorresponding to the node.
 19. The method of claim 18, wherein theparticular link between the pair of nodes is associated with a weightthat indicates a degree of relation between the concepts correspondingto the pair of nodes, and wherein the weight is dynamically updated asdocuments are added at the document corpus.
 20. The method of claim 19,wherein newly created documents are automatically added to the documentcorpus and deleted documents are automatically removed from the documentcorpus based on one or more monitoring agents.